package com.dys.testinterface;

/**
 * @className: com.dys.testinterface.InterfaceTest01
 * @description: JDK1.8之后加入了非抽象方法和静态方法
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/07/21 下午10:36
 */
public interface InterfaceTest01 {

    public static final int NUM = 100;

    public abstract void a();

    public abstract void b();

    public default void c() {
        System.out.println("JDK1.8之后加入的非抽象方法,默认方法...");
    }
}

class SubTest01 implements InterfaceTest01 {
    @Override
    public void a() {
        System.out.println("实现类重写了a方法...");
    }

    @Override
    public void b() {
        System.out.println("实现类重写了b方法...");
    }

    @Override
    public void c() {
        System.out.println("重写了非抽象方法...");
    }
}

class Test01 {
    /**
     * 这是一个main()方法,是应用程序的入口
     *
     * @param args 方法的形参列表,是一个字符串数组,包含了从命令行传递给程序的参数
     */
    public static void main(String[] args) {
        SubTest01 subTest01 = new SubTest01();
        subTest01.a();
        subTest01.b();
        subTest01.c();

        InterfaceTest01 s1 = new SubTest01();
        s1.a();
        s1.b();
        s1.c();
    }
}
